package com.ideaction.entity.mail;

import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Getter;
import lombok.Setter;
import org.springframework.data.annotation.Id;

@Getter
@Setter
public abstract class BaseMail implements Comparable<BaseMail> {
    
    @Id
    @JsonProperty("ID")
    private String _id;
    
    /**
     * 邮件状态 ,此状态的值是根据数据库数据设置的,所以不需要持久化,具体的状态保存在PlayerMailData mailStatus当中
     */
    @JsonProperty("Status")
    private transient int status;
    
    /**
     * 标题
     */
    @JsonProperty("Title")
    private String title;
    
    /**
     * 正文
     */
    @JsonProperty("Body")
    private String body;
    
    /**
     * 附件
     */
    @JsonProperty("Items")
    private String items;
    
    /**
     * 创建时间
     */
    @JsonProperty("CreateTime")
    private long createTime;
    
    /**
     * 结束时间
     */
    @JsonProperty("EndTime")
    private long endTime;
    
    /**
     * 修改时间
     */
    @JsonProperty("ModifyTime")
    private long modifyTime;
    
    @Override
    public int compareTo(BaseMail mail) {
        if (mail.getStatus() == 0) {
            return -1;
        }
        
        return (int) (mail.getModifyTime() / 1000 - this.modifyTime / 1000);
    }
}
